/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package co.uniandes.patrones.beans;

import co.uniandes.patrones.entidades.AdministradorUsuarios;
import co.uniandes.patrones.entidades.Usuario;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 *
 * @author alvar-go@uniandes.edu.co
 */
public class IngresoBean {

    public final static String SESION_LOGIN = "Login", SESION_TIPO = "Tipo", SESION_ID = "id";
    
    public final static String USUARIO_INVALIDO = "ingreso", CLAVE_INVALIDA = "ingreso", USUARIO_CLIENTE_CON = "versolicitudescliente", USUARIO_CLIENTE_SIN = "actualizardatos", USUARIO_TALLER = "versolicitudestaller", USUARIO_VEHIALPES = "solicitudesvehialpes";
    
    private String usuario;
    
    private String clave;

    private String rol;
    
    private AdministradorUsuarios admin;

    public IngresoBean() {
        admin = AdministradorUsuarios.getInstancia();
    }

    public String iniciarSesion(){
        //Usuario u = admin.buscarUsuario(usuario);
        //if( u != null){
            if(admin.autenticarIngreso(usuario, clave,rol)){
                // TODO agregar atributos correspondientes a la sesion
                FacesContext context = FacesContext.getCurrentInstance();
                HttpSession sesion = (HttpSession) context.getExternalContext().getSession(true);
                sesion.setAttribute(SESION_LOGIN, usuario);
                String tipo = Usuario.CLIENTE;
                sesion.setAttribute(SESION_TIPO, tipo);
                sesion.setAttribute(SESION_ID, 1);
                if(tipo.equals(Usuario.CLIENTE)){
                    //if(u.isActualizado()){
                        return USUARIO_CLIENTE_CON;
                    //}else{
                    //    return USUARIO_CLIENTE_SIN;
                   // }
                }else if (tipo.equals(Usuario.TALLER)){
                    return USUARIO_TALLER;
                }else{
                    return USUARIO_VEHIALPES;
                }
            }else{
                return  CLAVE_INVALIDA;
            }
        //}
        //return USUARIO_INVALIDO;
    }

    
    public IngresoBean(String usuario, String clave) {
        this.usuario = usuario;
        this.clave = clave;
    }

    public String getUsuario() {
        return usuario;
    }

    public String getClave() {
        return clave;
    }

    public void setClave(String clave) {
        this.clave = clave;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getRol() {
        return rol;
    }

    public void setRol(String rol) {
        this.rol = rol;
    }

    
}
